home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_mc.idb / usr / freeware / lib32 / mc / extfs / trpm.z / trpm
Text File  |  2002-07-08  |  7KB  |  165 lines

  1. #! /bin/sh
  2. #
  3. # Written by Erik Troan (ewt@redhat.com) 1996
  4. #            Jakub Jelinek (jj@sunsite.mff.cuni.cz) 1996
  5. #            Tomasz K│oczko (kloczek@rudy.mif.pg.gda.pl) 1997
  6. # minor changes by Wojtek Pilorz (wpilorz@bdk.lublin.pl) 1997
  7. # minor changes by Michele Marziani (marziani@fe.infn.it) 1997
  8. # slight changes to put rpm to Trpm by Balazs Nagy (julian7@kva.hu) 1998
  9. # locale bugfix by Michal Svec (rebel@penguin.cz) 2000
  10. # (C) 1996 The Free Software Foundation.
  11. #
  12. #
  13.  
  14. # override any locale for dates
  15. unset LC_ALL
  16. LC_TIME=C
  17. export LC_TIME
  18.  
  19. mcrpmfs_list ()
  20. {
  21.     # set MCFASTRPM_DFLT to 1 for faster rpm files handling by default, to 0 for
  22.     # slower handling
  23.     MCFASTRPM_DFLT=0
  24.     if test -z "$MCFASTRPM"; then
  25.       MCFASTRPM=$MCFASTRPM_DFLT
  26.     fi
  27.     FILEPREF="-r--r--r--   1 root     root    "
  28.     DESC=`rpm -qi $1`
  29.     DATE=`rpm -q --qf "%{BUILDTIME:date}" $1 | cut -c 5-11,21-24`
  30.     HEADERSIZE=`echo "$DESC" | wc -c`
  31.     echo "-r--r--r--   1 root     root  $HEADERSIZE $DATE HEADER"
  32.     echo "-r-xr-xr-x   1 root     root    39 $DATE UNINSTALL"
  33.     echo "dr-xr-xr-x   3 root     root       0 $DATE INFO"
  34.     echo "$FILEPREF 0 $DATE INFO/NAME-VERSION-RELEASE"
  35.     echo "$FILEPREF 0 $DATE INFO/GROUP"
  36.     echo "$FILEPREF 0 $DATE INFO/BUILDHOST"
  37.     echo "$FILEPREF 0 $DATE INFO/SOURCERPM"
  38.     if test "$MCFASTRPM" = 0 ; then
  39.      test "`rpm -q --qf \"%{DISTRIBUTION}\" $1`" = "(none)" ||
  40.       echo "$FILEPREF 0 $DATE INFO/DISTRIBUTION"
  41.      test "`rpm -q --qf \"%{VENDOR}\" $1`" = "(none)" ||
  42.      echo "$FILEPREF 0 $DATE INFO/VENDOR"
  43.      test "`rpm -q --qf \"%{DESCRIPTION}\" $1`" = "(none)" ||
  44.          echo "$FILEPREF 0 $DATE INFO/DESCRIPTION"
  45.      test "`rpm -q --qf \"%{SUMMARY}\" $1`" = "(none)" ||
  46.          echo "$FILEPREF 0 $DATE INFO/SUMMARY"
  47.      if test "`rpm -q --qf \"%{RPMTAG_PREIN}%{RPMTAG_POSTIN}%{RPMTAG_PREUN}%{RPMTAG_POSTUN}%{VERIFYSCRIPT}\" $1`" != "(none)(none)(none)(none)(none)"; then
  48.     echo "dr-xr-xr-x   1 root     root     0 $DATE INFO/SCRIPTS"
  49.     test "`rpm -q --qf \"%{RPMTAG_PREIN}\" $1`" = '(none)' ||
  50.        echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN"
  51.     test "`rpm -q --qf \"%{RPMTAG_POSTIN}\" $1`" = '(none)' ||
  52.        echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTIN"
  53.     test "`rpm -q --qf \"%{RPMTAG_PREUN}\" $1`" = '(none)' ||
  54.        echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREUN"
  55.     test "`rpm -q --qf \"%{RPMTAG_POSTUN}\" $1`" = '(none)' ||
  56.        echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTUN"
  57.     test "`rpm -q --qf \"%{VERIFYSCRIPT}\" $1`" = '(none)' ||
  58.        echo "$FILEPREF 0 $DATE INFO/SCRIPTS/VERIFYSCRIPT"
  59.         echo "$FILEPREF 0 $DATE INFO/SCRIPTS/ALL"
  60.      fi
  61.     else
  62.      echo "$FILEPREF 0 $DATE INFO/DISTRIBUTION"
  63.      echo "$FILEPREF 0 $DATE INFO/VENDOR"
  64.      echo "$FILEPREF 0 $DATE INFO/DESCRIPTION"
  65.      echo "$FILEPREF 0 $DATE INFO/SUMMARY"
  66.      echo "dr-xr-xr-x   1 root     root     0 $DATE INFO/SCRIPTS"
  67.      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN"
  68.      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTIN"
  69.      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREUN"
  70.      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTUN"
  71.      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/VERIFYSCRIPT"
  72.      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/ALL"
  73.     fi
  74.     if test "$MCFASTRPM" = 0 ; then
  75.      test "`rpm -q --qf \"%{PACKAGER}\" $1`" = "(none)" ||
  76.      echo "$FILEPREF 0 $DATE INFO/PACKAGER"
  77.      test "`rpm -q --qf \"%{URL}\" $1`" = "(none)" ||
  78.      echo "$FILEPREF 0 $DATE INFO/URL"
  79.      test "`rpm -q --qf \"%{SERIAL}\" $1`" = "(none)" ||
  80.      echo "$FILEPREF 0 $DATE INFO/SERIAL"
  81.      test "`rpm -q --qf \"%{COPYRIGHT}\" $1`" = "(none)" ||
  82.      echo "$FILEPREF 0 $DATE INFO/COPYRIGHT"
  83.     else
  84.      echo "$FILEPREF 0 $DATE INFO/PACKAGER"
  85.      echo "$FILEPREF 0 $DATE INFO/URL"
  86.      echo "$FILEPREF 0 $DATE INFO/SERIAL"
  87.      echo "$FILEPREF 0 $DATE INFO/COPYRIGHT"
  88.     fi
  89.     echo "$FILEPREF 0 $DATE INFO/BUILDTIME"
  90.     echo "$FILEPREF 0 $DATE INFO/RPMVERSION"
  91.     echo "$FILEPREF 0 $DATE INFO/OS"
  92.     echo "$FILEPREF 0 $DATE INFO/SIZE"
  93.     if test "$MCFASTRPM" != 0 ; then
  94.     rpm -q --qf "[%{REQUIRENAME}\n]" $1 | grep "(none)" > /dev/null ||
  95.     echo "$FILEPREF 0 $DATE INFO/REQUIRENAME"
  96.     rpm -q --qf "[%{PROVIDES}\n]" $1 | grep "(none)" > /dev/null ||
  97.     echo "$FILEPREF 0 $DATE INFO/PROVIDES"
  98.     test "`rpm -q --qf \"%{CHANGELOGTEXT}\" $1`" = "(none)" ||
  99.        echo "$FILEPREF 0 $DATE INFO/CHANGELOG"
  100.     else 
  101.     echo "$FILEPREF 0 $DATE INFO/REQUIRENAME"
  102.     echo "$FILEPREF 0 $DATE INFO/PROVIDES"
  103.         echo "$FILEPREF 0 $DATE INFO/CHANGELOG"
  104.     fi
  105.  
  106.     rpm -qlv $1 | sed -e 's/^\(..........\) /\1 1 /'
  107. }
  108.  
  109. mcrpmfs_copyout ()
  110. {
  111.     case "$2" in
  112.     HEADER) rpm -qi $1 > $3; exit 0;;
  113.     UNINSTALL) echo "# Run this to uninstall this RPM package" > $3; exit 0;;
  114.     INFO/NAME-VERSION-RELEASE)    rpm -q --qf "%{NAME}-%{VERSION}-%{RELEASE}\n" $1 > $3; exit 0;;
  115.     INFO/RELEASE)        rpm -q --qf "%{RELEASE}\n" $1 > $3; exit 0;;
  116.     INFO/GROUP)        rpm -q --qf "%{GROUP}\n" $1 > $3; exit 0;;
  117.     INFO/DISTRIBUTION)     rpm -q --qf "%{DISTRIBUTION}\n" $1 > $3; exit 0;;
  118.     INFO/VENDOR)        rpm -q --qf "%{VENDOR}\n" $1 > $3; exit 0;;
  119.     INFO/BUILDHOST)        rpm -q --qf "%{BUILDHOST}\n" $1 > $3; exit 0;;
  120.     INFO/SOURCERPM)        rpm -q --qf "%{SOURCERPM}\n" $1 > $3; exit 0;;
  121.     INFO/DESCRIPTION)    rpm -q --qf "%{DESCRIPTION}\n" $1 > $3; exit 0;;
  122.     INFO/PACKAGER)        rpm -q --qf "%{PACKAGER}\n" $1 > $3; exit 0;;
  123.     INFO/URL)        rpm -q --qf "%{URL}\n" $1 >$3; exit 0;;
  124.     INFO/BUILDTIME)        rpm -q --qf "%{BUILDTIME:date}\n" $1 >$3; exit 0;;
  125.     INFO/SERIAL)        rpm -q --qf "%{SERIAL}\n" $1 >$3; exit 0;;
  126.     INFO/COPYRIGHT)        rpm -q --qf "%{COPYRIGHT}\n" $1 >$3; exit 0;;
  127.     INFO/RPMVERSION)    rpm -q --qf "%{RPMVERSION}\n" $1 >$3; exit 0;;
  128.     INFO/REQUIRENAME)    rpm -q --qf "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" $1 >$3; exit 0;;
  129.     INFO/PROVIDES)        rpm -q --qf "[%{PROVIDES}\n]" $1 >$3; exit 0;;
  130.     INFO/SCRIPTS/PREIN)    rpm -q --qf "%{RPMTAG_PREIN}\n" $1 >$3; exit 0;;
  131.     INFO/SCRIPTS/POSTIN)    rpm -q --qf "%{RPMTAG_POSTIN}\n" $1 >$3; exit 0;;
  132.     INFO/SCRIPTS/PREUN)    rpm -q --qf "%{RPMTAG_PREUN}\n" $1 >$3; exit 0;;
  133.     INFO/SCRIPTS/POSTUN)    rpm -q --qf "%{RPMTAG_POSTUN}\n" $1 >$3; exit 0;;
  134.     INFO/SCRIPTS/VERIFYSCRIPT)    rpm -q --qf "%{VERIFYSCRIPT}\n" $1 >$3; exit 0;;
  135.     INFO/SCRIPTS/ALL)        rpm -q --scripts $1 > $3; exit 0;;
  136.     INFO/SUMMARY)        rpm -q --qf "%{SUMMARY}\n" $1 > $3; exit 0;;
  137.     INFO/OS)        rpm -q --qf "%{OS}\n" $1 > $3; exit 0;;
  138.     INFO/CHANGELOG)        rpm -q --qf "[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]\n" $1 > $3; exit 0;;
  139.     INFO/SIZE)        rpm -q --qf "%{SIZE} bytes\n" $1 > $3; exit 0;;
  140.     *)
  141.         cp /$2 $3
  142.     esac
  143. }
  144.  
  145. mcrpmfs_run ()
  146. {
  147.     case "$2" in
  148.     UNINSTALL) echo "Uninstalling $1"; rpm -e $1; exit 0;;
  149.     esac
  150. }
  151.  
  152. name=$2
  153. if [ ${name%%.trpm} = $name ]; then
  154.     name=`head -1 $name`
  155. fi
  156. #echo "TRPM: $@ ($name)" >> /tmp/tt
  157. #name=`echo $(basename $2 .trpm) | sed "s/^\(.*\)\.[^\.]*/\1/"`
  158. name=`basename $name .trpm`
  159. case "$1" in
  160.   list) mcrpmfs_list $name; exit 0;;
  161.   copyout) mcrpmfs_copyout $name $3 $4; exit 0;;
  162.   run) mcrpmfs_run $name $3; exit 1;;
  163. esac
  164. exit 1
  165.